#ifndef MG_ROTATE_H
#define MG_ROTATE_H

#include "ite/itp.h" //for all ith driver (include GPIO) & MACRO
#include <sys/ioctl.h>
#include <unistd.h>
#include "mg_iic.h"
#include "mg_Lcd_Driver.h"

#define ROTATE_INT_Pin			43//中断引脚
#define ROTATE_INT_STATE		ithGpioGet(ROTATE_INT_Pin)

#define PAT9125_ADDR		0x75	//设备地址

#define ONE_ROUND_X_NUM		3000	//一圈的位移值
#define BEE_INTERVAL_SCALE	60		//间隔刻度

typedef struct _MOVE_STATE_
{
	int16_t Move_X;			//单位时间X轴移动的位移值（相对值）
	int16_t Move_Y;			//单位时间Y轴移动的位移值（相对值）
	int32_t	X_Place; 		//当前X轴的位子（绝对值）
	int32_t	Y_Place; 		//当前Y轴的位子（绝对值）
	int32_t X_NPlace;		//X轴的位子最大值时不回0
	int32_t Y_NPlace;		//Y轴的位子最大值时不回0
}MOVE_STATE;
extern MOVE_STATE Rotate;//传感器参数（全局）

//旋转传感器初始化
bool RT_Sensor_Init(void);
//传感器实时检测
void RT_Sensor_Check(void);
//处理旋转信号
void Rotate_Progress(void);
//清除位移
void Clear_Rotate_Block(void);
//设置旋转挡位的位移差，一圈3000，如设置50，一圈就会有60挡
void Set_Rotate_Block(uint16_t Interval);
#endif